/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.scene.domain;

import com.koron.common.domain.BaseEntity;
import com.koron.hiddendanger.domain.HiddenDangerDiscovery;
import com.koron.hiddendanger.domain.ItemCheckRecord;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

@ApiModel(value = "设备", description = "设备台账的设备实体类")
public class Device extends BaseEntity {

    public Device() {
        super();
    }

    public Device(String userCode, String userName) {
        super.setAddUser(userCode);
        super.setAddUserName(userName);
        super.setAddTime(new Date());
        super.setUpdateUser(userCode);
        super.setUpdateUserName(userName);
        super.setUpdateTime(super.getAddTime());
    }

    @ApiModelProperty(value = "水司code", name = "corpCode", required = true)
    private String corpCode;

    @ApiModelProperty(value = "水司名称", name = "corpName", required = true)
    private String corpName;

    @ApiModelProperty(value = "所在网格code", name = "gridCode" )
    private String gridCode;

    @ApiModelProperty(value = "所在网格名称", name = "gridName", required = true)
    private String gridName;

    @ApiModelProperty(value = "设备编码即危险源编码", name = "deviceCode", required = true)
    private String deviceCode;

    @ApiModelProperty(value = "设备名称", name = "deviceName", required = true)
    private String deviceName;

    @ApiModelProperty(value = "设备类型id,引用数据字典", name = "deviceTypeId", required = true)
    private String deviceTypeId;

    @ApiModelProperty(value = "设备所属部门code", name = "deptCode", required = true)
    private String deptCode;

    @ApiModelProperty(value = "设备所属部门名称", name = "deptName", required = true)
    private String deptName;

    @ApiModelProperty(value = "设备类型名称", name = "deviceTypeName", required = true)
    private String deviceTypeName;

    @ApiModelProperty(value = "规格参数", name = "designationParam" )
    private String designationParam;

    @ApiModelProperty(value = "最近检查日期", name = "lastCheckDate", required = true)
    private Timestamp lastCheckDate;

    @ApiModelProperty(value = "最近检查日期", name = "lastCalibrationDate" )
    private Timestamp lastCalibrationDate;

    @ApiModelProperty(value = "校验过期日期", name = "calibrationExpiredDate" )
    private Timestamp calibrationExpiredDate;

    @ApiModelProperty(value = "设备负责人code", name = "responsibleEmployeeCode" )
    private String responsibleEmployeeCode;

    @ApiModelProperty(value = "设备负责人姓名", name = "responsibleEmployeeName" )
    private String responsibleEmployeeName;

    @ApiModelProperty(value = "检查负责人code", name = "checkEmployeeCode" )
    private String checkEmployeeCode;

    @ApiModelProperty(value = "检查负责人姓名", name = "checkEmployeeName" )
    private String checkEmployeeName;

    @ApiModelProperty(value = "设备状态: 0停用、1正常", name = "status" )
    private Integer status;

    @ApiModelProperty(value = "备注", name = "remark" )
    private String remark;

    @ApiModelProperty(value = "设备的检查结果是否正常", name = "normal" )
    private Boolean normal;

    @ApiModelProperty(value = "隐患id, 可以有多个", name = "hiddenDangerIds" )
    private String hiddenDangerIds;

    @ApiModelProperty(value = "隐患列表, 可以有多个", name = "hiddenDangers" )
    private List<HiddenDangerDiscovery> hiddenDangers;

    @ApiModelProperty(value = "检查表Id", name = "checkListEntryId", required = true)
    private String checkListEntryId;

    @ApiModelProperty(value = "安全检查项结果记录", name = "itemList", required = true)
    private List<ItemCheckRecord> itemList;

    @ApiModelProperty(value = "通知状态", name = "noticeState", required = true)
    private Integer noticeState;

    @ApiModelProperty(value = "存放位置", name = "location", required = true)
    private String location;

    public String getCorpCode() {
        return corpCode;
    }

    public void setCorpCode(String corpCode) {
        this.corpCode = corpCode;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getGridCode() {
        return gridCode;
    }

    public void setGridCode(String gridCode) {
        this.gridCode = gridCode;
    }

    public String getGridName() {
        return gridName;
    }

    public void setGridName(String gridName) {
        this.gridName = gridName;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getDeviceTypeId() {
        return deviceTypeId;
    }

    public void setDeviceTypeId(String deviceTypeId) {
        this.deviceTypeId = deviceTypeId;
    }

    public String getDeviceTypeName() {
        return deviceTypeName;
    }

    public void setDeviceTypeName(String deviceTypeName) {
        this.deviceTypeName = deviceTypeName;
    }

    public String getDesignationParam() {
        return designationParam;
    }

    public void setDesignationParam(String designationParam) {
        this.designationParam = designationParam;
    }

    public Timestamp getLastCheckDate() {
        return lastCheckDate;
    }

    public void setLastCheckDate(Timestamp lastCheckDate) {
        this.lastCheckDate = lastCheckDate;
    }

    public Timestamp getLastCalibrationDate() {
        return lastCalibrationDate;
    }

    public void setLastCalibrationDate(Timestamp lastCalibrationDate) {
        this.lastCalibrationDate = lastCalibrationDate;
    }

    public Timestamp getCalibrationExpiredDate() {
        return calibrationExpiredDate;
    }

    public void setCalibrationExpiredDate(Timestamp calibrationExpiredDate) {
        this.calibrationExpiredDate = calibrationExpiredDate;
    }

    public String getResponsibleEmployeeCode() {
        return responsibleEmployeeCode;
    }

    public void setResponsibleEmployeeCode(String responsibleEmployeeCode) {
        this.responsibleEmployeeCode = responsibleEmployeeCode;
    }

    public String getResponsibleEmployeeName() {
        return responsibleEmployeeName;
    }

    public void setResponsibleEmployeeName(String responsibleEmployeeName) {
        this.responsibleEmployeeName = responsibleEmployeeName;
    }

    public String getCheckEmployeeCode() {
        return checkEmployeeCode;
    }

    public void setCheckEmployeeCode(String checkEmployeeCode) {
        this.checkEmployeeCode = checkEmployeeCode;
    }

    public String getCheckEmployeeName() {
        return checkEmployeeName;
    }

    public void setCheckEmployeeName(String checkEmployeeName) {
        this.checkEmployeeName = checkEmployeeName;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Boolean getNormal() {
        return normal;
    }

    public void setNormal(Boolean normal) {
        this.normal = normal;
    }

    public String getHiddenDangerIds() {
        return hiddenDangerIds;
    }

    public void setHiddenDangerIds(String hiddenDangerIds) {
        this.hiddenDangerIds = hiddenDangerIds;
    }

    public List<HiddenDangerDiscovery> getHiddenDangers() {
        return hiddenDangers;
    }

    public void setHiddenDangers(List<HiddenDangerDiscovery> hiddenDangers) {
        this.hiddenDangers = hiddenDangers;
    }

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getCheckListEntryId() {
        return checkListEntryId;
    }

    public void setCheckListEntryId(String checkListEntryId) {
        this.checkListEntryId = checkListEntryId;
    }

    public List<ItemCheckRecord> getItemList() {
        return itemList;
    }

    public void setItemList(List<ItemCheckRecord> itemList) {
        this.itemList = itemList;
    }

    public Integer getNoticeState() {
        return noticeState;
    }

    public void setNoticeState(Integer noticeState) {
        this.noticeState = noticeState;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    @Override
    public String toString() {
        return "Device{" +
                "corpCode='" + corpCode + '\'' +
                ", corpName='" + corpName + '\'' +
                ", gridCode='" + gridCode + '\'' +
                ", gridName='" + gridName + '\'' +
                ", deviceCode='" + deviceCode + '\'' +
                ", deviceName='" + deviceName + '\'' +
                ", deviceTypeId='" + deviceTypeId + '\'' +
                ", deptCode='" + deptCode + '\'' +
                ", deptName='" + deptName + '\'' +
                ", deviceTypeName='" + deviceTypeName + '\'' +
                ", designationParam='" + designationParam + '\'' +
                ", lastCheckDate=" + lastCheckDate +
                ", lastCalibrationDate=" + lastCalibrationDate +
                ", calibrationExpiredDate=" + calibrationExpiredDate +
                ", responsibleEmployeeCode='" + responsibleEmployeeCode + '\'' +
                ", responsibleEmployeeName='" + responsibleEmployeeName + '\'' +
                ", checkEmployeeCode='" + checkEmployeeCode + '\'' +
                ", checkEmployeeName='" + checkEmployeeName + '\'' +
                ", status=" + status +
                ", remark='" + remark + '\'' +
                ", normal=" + normal +
                ", hiddenDangerIds='" + hiddenDangerIds + '\'' +
                ", hiddenDangers=" + hiddenDangers +
                ", checkListEntryId='" + checkListEntryId + '\'' +
                ", itemList=" + itemList +
                ", noticeState=" + noticeState +
                ", location='" + location + '\'' +
                '}';
    }
}
